//
// CMatrix3x4.java
// Copyright (C) 2010  "Naush" <naush _ hotmail _ fr>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>./* ----------------------------------------------------------------------------







package org.ryzom.nel.threed;

import org.ryzom.nel.misc.CVector;

public class CMatrix3x4 {
  private long swigCPtr;
  protected boolean swigCMemOwn;

  public CMatrix3x4(long cPtr, boolean cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = cPtr;
  }

  public static long getCPtr(CMatrix3x4 obj) {
    return (obj == null) ? 0 : obj.swigCPtr;
  }

  protected void finalize() {
    delete();
  }

  public synchronized void delete() {
    if (swigCPtr != 0) {
      if (swigCMemOwn) {
        swigCMemOwn = false;
        nel3dJNI.delete_CMatrix3x4(swigCPtr);
      }
      swigCPtr = 0;
    }
  }

  public void setA11(float value) {
    nel3dJNI.CMatrix3x4_a11_set(swigCPtr, this, value);
  }

  public float getA11() {
    return nel3dJNI.CMatrix3x4_a11_get(swigCPtr, this);
  }

  public void setA12(float value) {
    nel3dJNI.CMatrix3x4_a12_set(swigCPtr, this, value);
  }

  public float getA12() {
    return nel3dJNI.CMatrix3x4_a12_get(swigCPtr, this);
  }

  public void setA13(float value) {
    nel3dJNI.CMatrix3x4_a13_set(swigCPtr, this, value);
  }

  public float getA13() {
    return nel3dJNI.CMatrix3x4_a13_get(swigCPtr, this);
  }

  public void setA14(float value) {
    nel3dJNI.CMatrix3x4_a14_set(swigCPtr, this, value);
  }

  public float getA14() {
    return nel3dJNI.CMatrix3x4_a14_get(swigCPtr, this);
  }

  public void setA21(float value) {
    nel3dJNI.CMatrix3x4_a21_set(swigCPtr, this, value);
  }

  public float getA21() {
    return nel3dJNI.CMatrix3x4_a21_get(swigCPtr, this);
  }

  public void setA22(float value) {
    nel3dJNI.CMatrix3x4_a22_set(swigCPtr, this, value);
  }

  public float getA22() {
    return nel3dJNI.CMatrix3x4_a22_get(swigCPtr, this);
  }

  public void setA23(float value) {
    nel3dJNI.CMatrix3x4_a23_set(swigCPtr, this, value);
  }

  public float getA23() {
    return nel3dJNI.CMatrix3x4_a23_get(swigCPtr, this);
  }

  public void setA24(float value) {
    nel3dJNI.CMatrix3x4_a24_set(swigCPtr, this, value);
  }

  public float getA24() {
    return nel3dJNI.CMatrix3x4_a24_get(swigCPtr, this);
  }

  public void setA31(float value) {
    nel3dJNI.CMatrix3x4_a31_set(swigCPtr, this, value);
  }

  public float getA31() {
    return nel3dJNI.CMatrix3x4_a31_get(swigCPtr, this);
  }

  public void setA32(float value) {
    nel3dJNI.CMatrix3x4_a32_set(swigCPtr, this, value);
  }

  public float getA32() {
    return nel3dJNI.CMatrix3x4_a32_get(swigCPtr, this);
  }

  public void setA33(float value) {
    nel3dJNI.CMatrix3x4_a33_set(swigCPtr, this, value);
  }

  public float getA33() {
    return nel3dJNI.CMatrix3x4_a33_get(swigCPtr, this);
  }

  public void setA34(float value) {
    nel3dJNI.CMatrix3x4_a34_set(swigCPtr, this, value);
  }

  public float getA34() {
    return nel3dJNI.CMatrix3x4_a34_get(swigCPtr, this);
  }

  public void set(SWIGTYPE_p_NLMISC__CMatrix mat) {
    nel3dJNI.CMatrix3x4_set(swigCPtr, this, SWIGTYPE_p_NLMISC__CMatrix.getCPtr(mat));
  }

  public void mulSetVector(CVector in, CVector out) {
    nel3dJNI.CMatrix3x4_mulSetVector__SWIG_0(swigCPtr, this, CVector.getCPtr(in), in, CVector.getCPtr(out), out);
  }

  public void mulSetPoint(CVector in, CVector out) {
    nel3dJNI.CMatrix3x4_mulSetPoint__SWIG_0(swigCPtr, this, CVector.getCPtr(in), in, CVector.getCPtr(out), out);
  }

  public void mulSetVector(CVector in, float scale, CVector out) {
    nel3dJNI.CMatrix3x4_mulSetVector__SWIG_1(swigCPtr, this, CVector.getCPtr(in), in, scale, CVector.getCPtr(out), out);
  }

  public void mulSetPoint(CVector in, float scale, CVector out) {
    nel3dJNI.CMatrix3x4_mulSetPoint__SWIG_1(swigCPtr, this, CVector.getCPtr(in), in, scale, CVector.getCPtr(out), out);
  }

  public void mulAddVector(CVector in, float scale, CVector out) {
    nel3dJNI.CMatrix3x4_mulAddVector(swigCPtr, this, CVector.getCPtr(in), in, scale, CVector.getCPtr(out), out);
  }

  public void mulAddPoint(CVector in, float scale, CVector out) {
    nel3dJNI.CMatrix3x4_mulAddPoint(swigCPtr, this, CVector.getCPtr(in), in, scale, CVector.getCPtr(out), out);
  }

  public CMatrix3x4() {
    this(nel3dJNI.new_CMatrix3x4(), true);
  }

}
